
%     adln1.m
%              March 15, 1999

% diary adln1.d
echo on
clear
N = 20; NN = (0:N)/N ;  M = (N+1)^2  ;

x1 = 4*NN - 2 ;
[X1 X2] = meshgrid(x1, x1);
y = X1 .* exp(-X1.^2 - X2.^2);
figure(1), clf reset
surf(x1, x1, y), axis('ij'), hold on 

x1 = 0.4*NN+0.6;
x2 = 0.4*NN+0.8;
[X1 X2] = meshgrid(x1, x2);

d = X1 .* exp(-X1.^2 - X2.^2);
D = d(:)';
D(:, [1:3 438:441])

X = [ X1(:)'; X2(:)' ; ones(1, M)]; 
size(X)
X(:, [1:3 (M-3):M])

q = (D*X')/M  
R = (X*X')/M 
eig(R)'
w =  q/R

Y = w*X; YY = d ; YY(:) = Y;
Y(:, [1:3 (M-3):M])

err = sum(abs(D-Y))

surf(x1, x2, YY), hold off
% print -f1 -deps adln1

figure(2)
surf(x1, x2, d), axis('ij'), hold on 
surf(x1, x2, YY), hold off
% print -f2 -deps adln2


